package main

import "fmt"

func main() {
	//  声明一个未指定大小的数组来定义切片
	// 切片不需要说明长度
	//var arr []int = []int{1, 2, 3, 4}
	arr := []int{1, 2, 3, 4}
	fmt.Print(arr) // [1 2 3 4]

	// 获取长度
	fmt.Println(len(arr)) // 4
	// 计算容量
	fmt.Println(cap(arr)) // 4

	// 切片截取
	newArr := arr[1:3]
	fmt.Println(newArr) // [2 3]

	// 使用make生成切片
	var sliceArr []int = make([]int, 3, 5)
	fmt.Println(sliceArr) // [0 0 0]

	// 获取长度
	fmt.Println(len(sliceArr)) // 3
	// 计算容量
	fmt.Println(cap(sliceArr)) // 5

	// 空切片
	var emptySlice []int
	fmt.Println(emptySlice) // []
	if emptySlice == nil {
		fmt.Println("空切片")
	}

}
